home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / earcd / comm / ums / pint.lha / UMS / Rexx / Schnulli.pint < prev    next >
Text File  |  1997-03-04  |  6KB  |  230 lines

  1. /****** Schnulli.pint *******************************************************
  2.  
  3.     NAME
  4.       $VER: Schnulli.pint 1.1 (29.3.96) by Olaf Peters
  5.  
  6.     Updated for PINT (22.2.97):
  7.      Magnus Heino (nd95mho@Student.HGS.SE)
  8.  
  9.           *** This script is only useful in the german MausNet (R) ***
  10.  
  11.     AUTHOR
  12.       Olaf Peters
  13.       Kulmer Str. 7
  14.       28237 Bremen
  15.  
  16.       op@hb2.maus.de / olf@informatik.uni-bremen.de
  17.  
  18.     SYNOPSIS
  19.       Bestellt Dateien aus dem Programmteil per Schnulli.
  20.  
  21.     FUNCTION
  22.       Wer kennt es nicht: man liest in PINT die Nachrichten über die
  23.       neuesten Uploads in der Maus, schreibt sich die Nummern/Namen der
  24.       interessanten Sachen heraus, schließt das Fenster, schreibt eine PM
  25.       an Schnulli.
  26.  
  27.       Das ist mit Schnulli.pint vorbei: auf Tastendruck erscheint ein
  28.       Requester, in dem man nun direkt die gewünschten Programme eintragen
  29.       kann. Das Schreiben der Mail an Schnulli erfolgt dann automatisch.
  30.  
  31.     CONFIGURATION
  32.       Ist nur sinnvoll im Nachrichtenfenster.
  33.  
  34.       ums.config Beispiel:
  35.  
  36.         ( PINT.Rexx
  37.           "MessageWindow   F1   UMS:Rexx/Schnulli\n"
  38.         )
  39.  
  40.       Im Script (s.u.) kann noch angegeben werden, in welchen Mailfolder
  41.       die Nachrichten an Schnulli abgelegt werden sollen.
  42.  
  43.     NEEDS
  44.       Für die Benutzung des Scripts muß folgendes installiert sein:
  45.  
  46.       · mindestens PINT v2.0 (wegen des ARexx-Ports)
  47.       · mindestens UMSServer v11.20+ (wegen des UMSDupAccount Tricks für
  48.         normale Logins)
  49.       · reqtools.library und reqrexxtools.library (für die Requester)
  50.  
  51.     BUGS
  52.       Keine bekannt. Sollten welche auftauchen, bitte mailen (s.o.)
  53.  
  54.     $HISTORY:
  55.  
  56.      29.3.96  1.1   : die erzeugte Nachricht wird jetzt in das
  57.                       Artikelfenster eingetragen (IN 1.3b)
  58.     13.10.95  1.0   : initial
  59.  
  60. ******************************************************************************
  61. *
  62. */
  63.  
  64. /*
  65.  * ------------------------------------------------------------------------
  66.  *
  67.  *  Hier den Folder eintragen, in den die Nachricht abgelegt werden soll.
  68.  *
  69.  *  z.B.
  70.  *
  71.  * ctrlFolder = "Maus.Schnulli"
  72.  *
  73.  */
  74.  
  75. ctrlFolder = "Maus.Schnulli"
  76.  
  77. /* ------------------------------------------------------------------------ */
  78.  
  79. ProgramName = "Schnulli.pint"
  80. lf = '0a'x
  81. cVersion = "1.1 (29.3.96)"
  82.  
  83. eztags = "rtez_flags=ezreqf_centertext"
  84. rstags = "rtgs_flags=gsreqf_centertext"
  85.  
  86. /*** Startup ***/
  87.  
  88. options results
  89.  
  90. RC = 0
  91. account = 0
  92.  
  93. signal on BREAK_C
  94. signal on BREAK_D
  95. signal on BREAK_E
  96. signal on BREAK_F
  97. signal on ERROR
  98. signal on HALT
  99. signal on IOERR
  100. signal on SYNTAX
  101.  
  102. /*/// "Libs einbinden" */
  103.  
  104. if ~show(l, "rexxreqtools.library") then
  105.   if ~addlib("rexxreqtools.library", 0, -30, 0) then do
  106.     say "rexxreqtools.library konnte nicht geöffnet werden!" ;
  107.     exit(20) ;
  108.   end
  109.  
  110. libname = "ums.library"
  111. if ~show("L", "ums.library") then do
  112.   if ~addlib("ums.library", 0, -210, 8) then do
  113.     say "ums.library not found!"
  114.     exit(20)
  115.   end
  116. end
  117. call UMSInitConsts
  118.  
  119. /*\\\*/
  120.  
  121. /*/// "Login duplizieren" */
  122.  
  123. 'info screen'
  124. screen = result
  125.  
  126. eztags = eztags "rt_pubscrname='" || screen || "'"
  127. rstags = rstags "rt_pubscrname='" || screen || "'"
  128.  
  129. 'status'
  130.  
  131. if result ~= "MESSAGE" then do
  132.     rtezrequest("Du mußt im Nachrichtenfenster sein,"|| lf || "um dieses Script auszuführen!", "_Abbruch", ProgramName, eztags)
  133.     call HALT
  134. end
  135.  
  136. 'getaccount'
  137.  
  138. if (result = "RESULT") | (result = 0) then do
  139.     rtezrequest("Script konnte keinen Account bekommen!", "_Abbruch", ProgramName, eztags)
  140.     call HALT
  141. end ; else
  142.     login = result
  143.  
  144. account = UMSLogin("", login, "")
  145. if account = 0 then do
  146.     rtezrequest("Konnte Account nicht duplizieren!", "_Abbruch", ProgramName, eztags)
  147.     call HALT
  148. end
  149.  
  150. /*\\\*/
  151.  
  152. 'getmsgnum'
  153.  
  154. if result = "RESULT" then do
  155.     rtezrequest("No message no fun! :-)", "_Abbruch", ProgramName, eztags)
  156.     call HALT
  157. end ; else
  158.     msgnum = result
  159.  
  160. drop msg.
  161. if ~UMSReadMsgHeader(account, msgnum, msg., true) then do
  162.     rtezrequest("Nachricht konnte nicht gelesen werden!", "_Abbruch", ProgramName, eztags)
  163.     call HALT
  164. end
  165.  
  166. if upper(right(msg.UMSCODE_FromAddr, 5)) ~= ".MAUS" then do
  167.     rtezrequest(msg.UMSCODE_FromName "hat keine Mausadresse.", "_Abbruch", ProgramName, eztags)
  168.     call HALT
  169. end
  170.  
  171. parse var msg.UMSCODE_FromAddr maus ".maus"
  172. if UMSReadConfigUserName(account, "maus." || maus) = "" then do
  173.     rtezrequest("Für die Maus" maus "gibt's hier keinen Exporter!", "_Abbruch", ProgramName, eztags)
  174.     call HALT
  175. end
  176.  
  177. if upper(word(msg.UMSCODE_Subject, 1)) = "GPT" then
  178.     default = strip(word(msg.UMSCODE_Subject, 2), 'B', ':')
  179. else
  180.     default = ""
  181.  
  182. text = rtgetstring(default, "Was darf's denn sein?", ProgramName, "_Okay|_Abbruch", rstags, rtres)
  183. if rtres = 0 then
  184.     call HALT
  185.  
  186. drop ctrl.
  187. ctrl.UMSCODE_ToName = "Saug Tausch"
  188. ctrl.UMSCode_ToAddr = msg.UMSCODE_FromAddr
  189. ctrl.UMSCODE_Subject = "Schnulli.pint " || cVersion
  190. ctrl.UMSCODE_MsgText = text || lf
  191. ctrl.UMSCODE_Folder  = ctrlFolder
  192.  
  193. msgnum = UMSWriteMsg(account, ctrl.)
  194. if msgnum = 0 then do
  195.     rtezrequest("Nachricht konnte nicht geschrieben werden:" || lf || "UMS Error #" || UMSErrNum(account) || ":" UMSErrTxt(account), "_Abbruch", ProgramName, eztags)
  196. end ; else
  197.     'addmsg' msgnum
  198.  
  199. /*/// "Final cleanup" */
  200.  
  201. BREAK_C:
  202. BREAK_D:
  203. BREAK_E:
  204. BREAK_F:
  205. ERROR:
  206. HALT:
  207. IOERR:
  208. SYNTAX:
  209.  
  210. /*** Logout ***/
  211.  
  212. if account ~= 0 then do
  213.   call UMSLogout(account)
  214.   account = 0
  215. end
  216.  
  217. exit 0
  218.  
  219. /*** Support ***/
  220.  
  221. CheckErr: procedure expose account
  222.   err = UMSErrNum(account)
  223.   if err ~= 0 then do
  224.     rtezrequest("UMS Error #" || err || ": " || UMSErrTxt(account))
  225.   end
  226. return
  227.  
  228. /*\\\*/
  229.  
  230.